Gráficos dinámicos Plotly

x <- c(1, 2, 3, 8, 7, 5, 6)
y <- c(4, 5, 6, 2, 10 ,12, 5)

Diagrama de Dispersión

fig <- plot_ly(
  x = x, 
  y = y,
  type = "scatter"
)
fig
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
fig.sizes <- plot_ly (
  x = x,
  y = y,
  type = "scatter",
  mode = "markers",
  size = 3,
  alpha = 0.9
)
fig.sizes
# line
fig.line <- plot_ly (
  x = x,
  y = y,
  type = "scatter",
  mode = "lines"
)

fig.line 

fig.line <- plot_ly (
  x = x,
  y = y,
  type = "scatter",
  mode = "lines+markers"
)

fig.line 
# Utilizadon Dataframe "iris" con plot_ly
fig <- plot_ly(
  data = iris, x = ~Sepal.Width, y = ~Petal.Width,
  type = "scatter",
  color = ~Species, size = ~Sepal.Width
)
fig
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
Aviso: `line.width` does not currently support multiple values.
Aviso: `line.width` does not currently support multiple values.
Aviso: `line.width` does not currently support multiple values.
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
Aviso: `line.width` does not currently support multiple values.
Aviso: `line.width` does not currently support multiple values.
Aviso: `line.width` does not currently support multiple values.
vec.1 <- c(1:100)
random_y <- rnorm(100, mean = 0)

data <- data.frame("norm_1" = vec.1, 
                   "norm_2" =random_y)

fig <- plot_ly(data, x = ~norm_1, y = ~norm_2, 
               type = 'scatter', 
               mode = 'lines')
fig

Diagrama de barras

fig.bar <- plot_ly(
  x = x,
  y = y,
  type = "bar"
)
fig.bar
fig <- plot_ly(
  x = c("Manzanas", "Naranajas", "Sandías"),
  y = c(300, 245, 283),
  name = "Ventas",
  type = "bar"
)

fig
fig.bar <- plot_ly (
  data = iris,
  x = ~Sepal.Length,
  y = ~Sepal.Width,
  type = "bar",
  color = ~Species
)

fig.bar 

Añadir textp a una gráfica

# title
# xaxis
# yaxis

x <- c(1, 2, 3, 8, 7, 5, 6, 2, 4, 14, 16, 19, 23, 5, 8)
y <- c(4, 5, 6, 2, 10 ,12, 5, 9, 10, 11, 23, 4, 7, 6, 8)
f <- factor(c("VALUE1", "VALUE2", "VALUE1", "VALUE1", "VALUE2", "VALUE1", "VALUE1", 
              "VALUE1", "VALUE2", "VALUE1", "VALUE1", "VALUE2", "VALUE1", "VALUE1", "VALUE2"))
z <- sample(15:30, 15, replace = F)
d <- data.frame("x" = x, "y" = y, "f" = f, "z" = z)

fig <- plot_ly(iris, x = ~x, y = ~y, 
               text = ~f, color = ~f,
               type = 'scatter', mode = 'markers', 
        marker = list(size = ~z, opacity = 0.5))

fig <- fig %>% layout(title = 'X ~ Y',
         xaxis = list(title = "Vector X"),
         yaxis = list(title = "Vector Y"))

fig
Aviso en RColorBrewer::brewer.pal(N, "Set2") :
  minimal value for n is 3, returning requested palette with 3 different levels

Aviso en RColorBrewer::brewer.pal(N, "Set2") :
  minimal value for n is 3, returning requested palette with 3 different levels

Aviso en RColorBrewer::brewer.pal(N, "Set2") :
  minimal value for n is 3, returning requested palette with 3 different levels

Aviso en RColorBrewer::brewer.pal(N, "Set2") :
  minimal value for n is 3, returning requested palette with 3 different levels

Histograma

fig <- plot_ly(x = ~rnorm(500),
               alpha = 0.6, 
               type = "histogram")

fig
fig <- plot_ly(alpha = 0.6)
fig <- fig %>% add_histogram(x = ~rnorm(500))
fig <- fig %>% add_histogram(x = ~rnorm(500) + 1)
fig <- fig %>% layout(barmode = "overlay") # "stack" | "group" | "overlay" | "relative"

fig

Boxplot

fig <- plot_ly(y = ~rnorm(50), type = "box") %>% 
  layout(title = "Boxplot",
             xaxis = list(showgrid = FALSE),
             yaxis = list(showgrid = FALSE))

fig

Diagrama de sectores

fig <- plot_ly(
  data = iris,
  labels = ~Species,
  values = ~Sepal.Length,
  type = 'pie'
) %>% layout(title = "Diagrama de sectores por Species",
             xaxis = list(showgrid = FALSE),
             yaxis = list(showgrid = FALSE))
fig
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIEdyw6FmaWNvcyBkaW7DoW1pY29zIFBsb3RseQ0KYGBge3J9DQp4IDwtIGMoMSwgMiwgMywgOCwgNywgNSwgNikNCnkgPC0gYyg0LCA1LCA2LCAyLCAxMCAsMTIsIDUpDQpgYGANCg0KIyMjIERpYWdyYW1hIGRlIERpc3BlcnNpw7NuDQpgYGB7cn0NCmZpZyA8LSBwbG90X2x5KA0KICB4ID0geCwgDQogIHkgPSB5LA0KICB0eXBlID0gInNjYXR0ZXIiDQopDQpmaWcNCg0KZmlnLnNpemVzIDwtIHBsb3RfbHkgKA0KICB4ID0geCwNCiAgeSA9IHksDQogIHR5cGUgPSAic2NhdHRlciIsDQogIG1vZGUgPSAibWFya2VycyIsDQogIHNpemUgPSAzLA0KICBhbHBoYSA9IDAuOQ0KKQ0KZmlnLnNpemVzDQpgYGANCmBgYHtyfQ0KIyBsaW5lDQpmaWcubGluZSA8LSBwbG90X2x5ICgNCiAgeCA9IHgsDQogIHkgPSB5LA0KICB0eXBlID0gInNjYXR0ZXIiLA0KICBtb2RlID0gImxpbmVzIg0KKQ0KDQpmaWcubGluZSANCg0KZmlnLmxpbmUgPC0gcGxvdF9seSAoDQogIHggPSB4LA0KICB5ID0geSwNCiAgdHlwZSA9ICJzY2F0dGVyIiwNCiAgbW9kZSA9ICJsaW5lcyttYXJrZXJzIg0KKQ0KDQpmaWcubGluZSANCmBgYA0KDQpgYGB7cn0NCiMgVXRpbGl6YWRvbiBEYXRhZnJhbWUgImlyaXMiIGNvbiBwbG90X2x5DQpmaWcgPC0gcGxvdF9seSgNCiAgZGF0YSA9IGlyaXMsIHggPSB+U2VwYWwuV2lkdGgsIHkgPSB+UGV0YWwuV2lkdGgsDQogIHR5cGUgPSAic2NhdHRlciIsDQogIGNvbG9yID0gflNwZWNpZXMsIHNpemUgPSB+U2VwYWwuV2lkdGgNCikNCmZpZw0KYGBgDQpgYGB7cn0NCnZlYy4xIDwtIGMoMToxMDApDQpyYW5kb21feSA8LSBybm9ybSgxMDAsIG1lYW4gPSAwKQ0KDQpkYXRhIDwtIGRhdGEuZnJhbWUoIm5vcm1fMSIgPSB2ZWMuMSwgDQogICAgICAgICAgICAgICAgICAgIm5vcm1fMiIgPXJhbmRvbV95KQ0KDQpmaWcgPC0gcGxvdF9seShkYXRhLCB4ID0gfm5vcm1fMSwgeSA9IH5ub3JtXzIsIA0KICAgICAgICAgICAgICAgdHlwZSA9ICdzY2F0dGVyJywgDQogICAgICAgICAgICAgICBtb2RlID0gJ2xpbmVzJykNCmZpZw0KYGBgDQojIyBEaWFncmFtYSBkZSBiYXJyYXMNCmBgYHtyfQ0KZmlnLmJhciA8LSBwbG90X2x5KA0KICB4ID0geCwNCiAgeSA9IHksDQogIHR5cGUgPSAiYmFyIg0KKQ0KZmlnLmJhcg0KYGBgDQpgYGB7cn0NCmZpZyA8LSBwbG90X2x5KA0KICB4ID0gYygiTWFuemFuYXMiLCAiTmFyYW5hamFzIiwgIlNhbmTDrWFzIiksDQogIHkgPSBjKDMwMCwgMjQ1LCAyODMpLA0KICBuYW1lID0gIlZlbnRhcyIsDQogIHR5cGUgPSAiYmFyIg0KKQ0KDQpmaWcNCmBgYA0KYGBge3J9DQpmaWcuYmFyIDwtIHBsb3RfbHkgKA0KICBkYXRhID0gaXJpcywNCiAgeCA9IH5TZXBhbC5MZW5ndGgsDQogIHkgPSB+U2VwYWwuV2lkdGgsDQogIHR5cGUgPSAiYmFyIiwNCiAgY29sb3IgPSB+U3BlY2llcw0KKQ0KDQpmaWcuYmFyIA0KYGBgDQojIyMgQcOxYWRpciB0ZXh0cCBhIHVuYSBncsOhZmljYQ0KYGBge3J9DQojIHRpdGxlDQojIHhheGlzDQojIHlheGlzDQoNCnggPC0gYygxLCAyLCAzLCA4LCA3LCA1LCA2LCAyLCA0LCAxNCwgMTYsIDE5LCAyMywgNSwgOCkNCnkgPC0gYyg0LCA1LCA2LCAyLCAxMCAsMTIsIDUsIDksIDEwLCAxMSwgMjMsIDQsIDcsIDYsIDgpDQpmIDwtIGZhY3RvcihjKCJWQUxVRTEiLCAiVkFMVUUyIiwgIlZBTFVFMSIsICJWQUxVRTEiLCAiVkFMVUUyIiwgIlZBTFVFMSIsICJWQUxVRTEiLCANCiAgICAgICAgICAgICAgIlZBTFVFMSIsICJWQUxVRTIiLCAiVkFMVUUxIiwgIlZBTFVFMSIsICJWQUxVRTIiLCAiVkFMVUUxIiwgIlZBTFVFMSIsICJWQUxVRTIiKSkNCnogPC0gc2FtcGxlKDE1OjMwLCAxNSwgcmVwbGFjZSA9IEYpDQpkIDwtIGRhdGEuZnJhbWUoIngiID0geCwgInkiID0geSwgImYiID0gZiwgInoiID0geikNCg0KZmlnIDwtIHBsb3RfbHkoaXJpcywgeCA9IH54LCB5ID0gfnksIA0KICAgICAgICAgICAgICAgdGV4dCA9IH5mLCBjb2xvciA9IH5mLA0KICAgICAgICAgICAgICAgdHlwZSA9ICdzY2F0dGVyJywgbW9kZSA9ICdtYXJrZXJzJywgDQogICAgICAgIG1hcmtlciA9IGxpc3Qoc2l6ZSA9IH56LCBvcGFjaXR5ID0gMC41KSkNCg0KZmlnIDwtIGZpZyAlPiUgbGF5b3V0KHRpdGxlID0gJ1ggfiBZJywNCiAgICAgICAgIHhheGlzID0gbGlzdCh0aXRsZSA9ICJWZWN0b3IgWCIpLA0KICAgICAgICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gIlZlY3RvciBZIikpDQoNCmZpZw0KYGBgDQoNCiMjIEhpc3RvZ3JhbWENCmBgYHtyfQ0KZmlnIDwtIHBsb3RfbHkoeCA9IH5ybm9ybSg1MDApLA0KICAgICAgICAgICAgICAgYWxwaGEgPSAwLjYsIA0KICAgICAgICAgICAgICAgdHlwZSA9ICJoaXN0b2dyYW0iKQ0KDQpmaWcNCmBgYA0KYGBge3J9DQpmaWcgPC0gcGxvdF9seShhbHBoYSA9IDAuNikNCmZpZyA8LSBmaWcgJT4lIGFkZF9oaXN0b2dyYW0oeCA9IH5ybm9ybSg1MDApKQ0KZmlnIDwtIGZpZyAlPiUgYWRkX2hpc3RvZ3JhbSh4ID0gfnJub3JtKDUwMCkgKyAxKQ0KZmlnIDwtIGZpZyAlPiUgbGF5b3V0KGJhcm1vZGUgPSAib3ZlcmxheSIpICMgInN0YWNrIiB8ICJncm91cCIgfCAib3ZlcmxheSIgfCAicmVsYXRpdmUiDQoNCmZpZw0KYGBgDQoNCiMjIEJveHBsb3QNCmBgYHtyfQ0KZmlnIDwtIHBsb3RfbHkoeSA9IH5ybm9ybSg1MCksIHR5cGUgPSAiYm94IikgJT4lIA0KICBsYXlvdXQodGl0bGUgPSAiQm94cGxvdCIsDQogICAgICAgICAgICAgeGF4aXMgPSBsaXN0KHNob3dncmlkID0gRkFMU0UpLA0KICAgICAgICAgICAgIHlheGlzID0gbGlzdChzaG93Z3JpZCA9IEZBTFNFKSkNCg0KZmlnDQpgYGANCg0KIyMgRGlhZ3JhbWEgZGUgc2VjdG9yZXMNCmBgYHtyfQ0KZmlnIDwtIHBsb3RfbHkoDQogIGRhdGEgPSBpcmlzLA0KICBsYWJlbHMgPSB+U3BlY2llcywNCiAgdmFsdWVzID0gflNlcGFsLkxlbmd0aCwNCiAgdHlwZSA9ICdwaWUnDQopICU+JSBsYXlvdXQodGl0bGUgPSAiRGlhZ3JhbWEgZGUgc2VjdG9yZXMgcG9yIFNwZWNpZXMiLA0KICAgICAgICAgICAgIHhheGlzID0gbGlzdChzaG93Z3JpZCA9IEZBTFNFKSwNCiAgICAgICAgICAgICB5YXhpcyA9IGxpc3Qoc2hvd2dyaWQgPSBGQUxTRSkpDQpmaWcNCmBgYA0KDQo=